home *** CD-ROM | disk | FTP | other *** search
- #ifndef AMARQUEE_H
- #define AMARQUEE_H
-
- #ifndef EXEC_PORTS_H
- #include <exec/ports.h>
- #endif
-
- /* This library contains definitions and structures necessary to use amarquee.library. */
-
- /* Different error types that can be returned to the client in QMessages */
- #define QERROR_NO_ERROR 0 /* Everything is okay */
- #define QERROR_UNKNOWN -1 /* Don't know what the error was. */
- #define QERROR_MALFORMED_KEY -2 /* Keystring could not be parsed or "dir" does not exist */
- #define QERROR_NO_SERVER_MEM -3 /* Server did not have enough mem available to complete request */
- #define QERROR_NO_CONNECTION -4 /* The connection to the server went south */
- #define QERROR_UNPRIVILEGED -5 /* You're not allowed to do that! */
- #define QERROR_UNIMPLEMENTED -6 /* Feature you requested does not exist yet */
- #define QERROR_NO_CLIENT_MEM -7 /* Your computer didn't have enough memory available to complete an action */
- #define QERROR_SYS_MESSAGE -8 /* This message is a "wall" text message from a server admin */
-
- /* These error types may be returned by QFreeSession() after a QSession
- allocation attempt fails. */
- #define QERROR_NO_TCP_STACK -20 /* TCP stack wasn't running */
- #define QERROR_HOSTNAME_LOOKUP -21 /* Hostname lookup of server failed */
- #define QERROR_ABORTED -22 /* TCP thread got a control-C */
- #define QERROR_NO_SERVER -23 /* No AMarquee server at requested host/port */
- #define QERROR_NO_INETD -24 /* The program wasn't launched by inetd */
- #define QERROR_ACCESS_DENIED -25 /* The server wouldn't accept our connection */
-
- /* Flags to use with QGo() */
- #define QGOF_SYNC (1L<<0) /* Send a sync packet when all has settled */
-
- /* Flags representing special privileges; used with QRequestPrivileges(), etc */
- #define QPRIV_KILLCLIENTS (1L<<0) /* license to kill! */
- #define QPRIV_ADMIN (1L<<1) /* Ability to set env vars, etc, on the server */
- #define QPRIV_GETSYSMESSAGES (1L<<2) /* Ability to receive special sysadmin messages */
- #define QPRIV_SENDSYSMESSAGES (1L<<3) /* Ability to send special sysadmin messages */
- #define QPRIV_ALL ( 0x0F) /* all possible QPRIV_* bits */
-
- /* All events from AMarquee come in this package! */
- struct QMessage
- {
- struct Message qm_Msg;/* Don't directly use the contents of qm_Msg! */
- LONG qm_ID; /* Message ID # of transaction related to this opCode, or -1 if no ID is applicable. */
- int qm_Status; /* One of the QERROR_* codes defined in AMarquee headers. */
- char * qm_Path; /* Pathname of a node, or NULL if not applicable. */
- void * qm_Data; /* Pointer to beginning of data buffer, or NULL if not applicable. */
- ULONG qm_DataLen; /* Length of qm_Data buffer, or 0 if not applicable. */
- ULONG qm_ActualLen; /* Length of the data buffer stored on the AMarquee server. */
- ULONG qm_ErrorLine; /* Line # of the server source code that generated the error. Useful for debugging. */
- void * qm_Private; /* Private info used by FreeQMessage() */
- };
-
- struct QSession
- {
- struct MsgPort * qMsgPort; /* Wait() on this for QMessages! */
-
- /********************************************************************/
- /* Invisible, private info is here... don't trust sizeof(QSession)! */
- /********************************************************************/
- };
-
- struct QRunInfo
- {
- LONG qr_Allowed; /* The theoretical maximum number of bytes your server may allocate. */
- LONG qr_Alloced; /* The number of bytes currently allocated by your server. */
- LONG qr_Avail; /* The number of bytes that may actually be allocated by your server. */
- ULONG qr_CurrentPrivs; /* Bit-chord of QPRIV_* bits, showing what special privs you have. */
- ULONG qr_PossiblePrivs; /* Bit-chord of QPRIV_* bits, showing what special privs you could get if you asked. */
- };
-
- #endif
-